﻿//题目描述
//本题为填空题，只需要算出结果后，在代码中使用输出语句将所填结果输出即可。
//如果一个正整数只有1 和它本身两个约数，则称为一个质数（又称素数）。
//前几个质数是：2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, ⋅⋅⋅ 。
//如果一个质数的所有十进制数位都是质数，我们称它为纯质数。
//例如：2, 3, 5, 7, 23, 37 都是纯质数，而11, 13, 17, 19, 29, 31 不是纯质数。当然
//1, 4, 35 也不是纯质数。
//请问，在1 到20210605 中，有多少个纯质数？
#include <bits/stdc++.h>
using namespace std;
bitset<20210605+1>vis;
void isp(int x) {//埃氏筛法
    vis[0] = vis[1] = true;
    for (int i = 2; i <=x; ++i) {
        if (!vis[i]) {
            for (int j = 2 * i; j <= x; j += i) {
                vis[j] = true;
            }
        }
    }
}
bool ispru(int x) {
    int a, b;
    a = x;
    while (a) {
        b = a % 10;
        if (b == 0 || b == 1 || b == 4 || b == 6 || b == 8 || b == 9) return false;
        a /= 10;
    }
    return true;
}
int main()
{
    int num = 0;
    isp(20210605);//通过埃氏筛法把1到20210605的数标记为质数
    for (int i = 2; i <= 20210605; ++i) {
        if (!vis[i] && ispru(i))num++;
    }
    cout << num;
    return 0;
}